Physical IT (information technology) infrastructures are difficult to manage. Changing the network configuration, adding a new machine or storage device are typically difficult manual tasks. This makes such changes expensive and error prone. It also means that the change can take several hours or days to take place, limiting the rate at which reconfiguration can take place to take account of changing business demands. Sometimes the reconfiguration can take months, as more equipment needs to be ordered before it can be implemented.
A physical IT infrastructure can have only one configuration at any one time. Although this configuration might be suitable for some tasks, it is typically sub-optimal for other tasks. For example, an infrastructure designed for running desktop office applications during the day may not be suitable for running complicated numerical analysis applications during the night. In a single physical IT infrastructure, separate tasks can interfere with each other. For example, it has been proposed to use spare compute cycles on desktops and servers to perform large scale computations: grid applications. One problem is how to isolate the network traffic, the data storage and processing of these computations from other tasks using the same infrastructure. Without isolation undesirable interference between the tasks is likely to occur rendering such sharing an unacceptable risk.
In most physical IT infrastructure, resource utilization is very low: 15% is not an uncommon utilization for a server, 5% for a desktop. This means that customers have purchased far more IT infrastructure than they need. HP's UDC (Utility Data Centre) has been applied commercially and addresses some of these problems, by automatic reconfiguration of physical infrastructure: processing machines, network and storage devices. This requires specialized hardware which makes it expensive. In addition in the UDC a physical machine can only ever be in a single physical infrastructure. This means that all programs running on that physical machine will be exposed to the same networking and storage environment: they can interfere with each other and the configuration may not be optimal for all programs. In UDC although a physical machine can be reassigned to different infrastructure instances, called farms, at different times, it can only be assigned to one farm, at any given moment: it is not possible to share a physical machine between farms. This limits the utilization that levels that can be achieved for the hardware, requiring the customer to purchase more hardware than is necessary.
Parts of the IT infrastructure can be offered as a service. Servers, storage, and networking can be offered by internal corporate IT providers or Internet service providers. Email, word processing, and other simple business applications are now offered by many providers. Other services can be more complex business applications that implement business processes such as customer relationship management, order and invoice processing, and supply chain management are also offered as a service for example and many others can be envisaged including online gaming, online retailing and so on. In principle any software can be offered as a service. Other examples include rendering of computer animation for movies, web applications, computer simulations of physical systems, and financial modelling.
A service can be offered in several ways. It can be a portal that is accessed via Web browsers, a Web service endpoint, or a combination of the two and can be provided over the internet, or intranets, using wired or wireless networks for example. In some cases services can implement business processes for small business or larger enterprise class customers. These customers may have thousands or more employees and thousands or millions of users or Web enabled devices that interact with their service. There are several actors that can participate in Software as a service (SaaS). Infrastructure providers provide the (typically shared) infrastructure, physical and virtual, for the operation of service instances. Service providers provide software that is packaged as a service. These service providers may be customers of the infrastructure providers. Software vendors create such software. End customers contract with an infrastructure provider or software provider to consume a service. A service implements business processes for customers. A Service instance provides the service to a customer. A service provider may have development, testing, and production instances of a service. The users of the service are employees, IT systems, Web enabled devices, or business partners of the customer. In some cases, the infrastructure provider, software provider, and software vendor are one entity.
Model-driven techniques have been considered by many researchers and exploited in real world environments. In general, the techniques capture information in models that can be used to automatically generate code, configuration information, or changes to configuration information. The goal of model-driven approaches is to increase automation and reduce the human effort and costs needed to support IT systems. Systems can have many aspect-specific viewpoints, e.g., functionality, security, performance, conformance, each with a model. The concept of viewpoints was introduced in the ODP Reference Model for Distributed Computing.
There are several different paradigms for how service instances can be rendered into shared resource pools. These can be classified as multi-tenancy, isolated-tenancy, and hybrid-tenancy. Multi-tenancy hosts many customers with one instance of a software service. Isolated-tenancy creates a separate service instance for each customer. A hybrid may share some portion of a service instance such as a database across many customers while maintaining isolated application servers. Multi-tenancy systems can reduce maintenance and management challenges for providers, but it can be more difficult to ensure customer specific service levels. Isolated-tenancy systems provide for greatest performance flexibility and greatest security, but present greater maintenance challenges. Hybrid-tenancy approaches have features of both approaches.
Rendering service instances into shared virtualized resource pools presents configuration, deployment and management challenges, and various approaches are known. The lifecycle of a service can include any or all of for example initial specification, through design, to deployment and eventual decommissioning. Each potential customer may have specific requirements for the service, both functional and non-functional. Services do not conform to a one size fits all approach. A service provider must be able offer multiple variants of a service, whose behaviour and design are targeted to the customer requirements. Service design is the process of creating not only an optimised hardware and software configuration, but also a specification of the appropriate service lifecycle behaviour that matches that configuration. The lifecycle behaviour such as how to adapt the service in response to given changes in environment or changes to requirements, is typically fixed at the outset.
A known example of model-based automation is Eilam et al. (“Model-Based Automation of Service Deployment in a Constrained Environment,” T. Eilam et al., Tech. rep. RC23382, IBM, September 2004. and “Reducing the Complexity of Application Deployment in Large Data Centers,” T. Eilam et al., IFIP/IEEE Int'l. Symp. on Integrated Mgmt., 2005.), who describe a system that matches distributed application network topologies to the infrastructure network topology that is available in the data centre. They use transformations on application topology models to transform the topology into something that matches what can be deployed using the data centre's infrastructure. The prototype they describe is only able to deal with network topology matching and management.